hd2fandomcom-20200214-history
Create checkpoints with 3ds Max
to-do Plugin works with 64-bit version of 3ds Max only! Tested with 3ds Max version: 2013, 2014. Download hdmaster's 3ds Max plugin Copy gup into stdplugs folder of 3ds Max Start 3ds Max Explain snags toggle feature (placing CPs on ground) useful key shortcuts * Alt+w = minimize/maximize viewport * g = viewport grid on/off * s = snaps toggle on/off * Ctrl+i = select inverse * Ctrl+d = deselect * Ctrl+a = select all in scene * space = selection lock toggle * Shift+h=hide/unhide helper objects * Import scene.4ds (select Files of type = 4DS Model (*.4DS)) Import (if existing) check2.bin (select Files of type = LS3D Scene (*.BIN)) Important! When exporting you have to select LS3D Navigation (*.BIN) Meaning of CP values Make changes with MaxScript or Listener (list of commands below) // Checkpoints // INFO: $ is always the current selection // Seperate Connection bewteen Checkpoint001 and Checkpoint002 $Checkpoint001.Seperate $Checkpoint002 // Alternativ: select CP and use following command to seperate selected CP with Checkpoint002 $.Seperate $Checkpoint002 // Readout all values of a CP showProperties $ // Edit CP values for a selection of Checkpoints // for vehicle checkpoints use LS3DVehicleCheckpoint instead LS3DHumanCheckpoint for obj in selection where classOf obj LS3DHumanCheckpoint do ( obj.Unk16 = 1 obj.Unk18 = 64 obj.Unk19 = 80 obj.Unk20 = true obj.Unk21 = 0 obj.Unk23 = 0 obj.Unk24 = 0 obj.Unk25 = 0 obj.Unk27 = -2 obj.Unk28 = -2 obj.Unk29 = -2 obj.Unk30 = -2 obj.AIcommand = 2 obj.link = "test" ) // Unname a checkpoint for obj in selection do obj.name = uniqueName "Checkpoint" // delete all objects in scene delete objects // create human checkpoints // vehicle CPs can be created with LS3DVehicleCheckpoint a = LS3DHumanCheckpoint name:"a" pos:-10,-10,0 b = LS3DHumanCheckpoint name:"b" pos:-10,10,0 c = LS3DHumanCheckpoint name:"c" pos:[ 10,10,0] d = LS3DHumanCheckpoint name:"d" pos:[ 10,-10,0] center = LS3DHumanCheckpoint name:"Center" pos:0,0,0 // connect a with b, b with c, ... a.Join b b.Join c c.Join d d.Join a // connect all checkpoints (a, b, c, d) with center CP center.Join a center.Join b center.Join c center.Join d // undo connections with CP Center for connected in center.Connections do ( center.Seperate connected // or e.g. "connected.Seperate center", order does not care ) // returns "true" for all human CPs and "false" for all vehilce CPs if center.Human do ( print ( "Checkpoint " + center.name + " is a human checkpoint") ) // returns "true" if f is connected with Center, here it's "false" if center.Joined a then ( print ( "Checkpoint " + center.name + " is connected to " + a.name ) ) else ( print ( "Checkpoint " + center.name + " is not connected to " + a.name ) ) // select Center select center // ..and connect with a $.Join $a // here "true" if mitte.Joined a then ( print ( "Checkpoint " + $.name + " is connected to " + a.name ) ) else ( print ( "Checkpoint " + $.name + " is not connected to " + a.name ) ) Category:Editing